3-way merge
gitの初期のGitのmerge algorithm
割と初期に、Merge-Recursiveに変わっているらしい
When Git performs a merge between two branches, it uses one of several “strategy” backends to resolve the changes. The original strategy is simply called resolve and does a standard three-way merge. But that default was replaced early in Git’s history by merge-recursive, which had two important advantages: ref
計算量は$ O(n^2)
https://ja.stackoverflow.com/questions/52019/git-の-3-way-merge-とは具体的にどのようなアルゴリズムですか
https://qiita.com/myouga/items/fb680e689970c2ec97ba
https://ja.wikipedia.org/wiki/マージ_(バージョン管理システム)#3ウェイマージ
https://jp.mathworks.com/help/simulink/slref/resolve-conflicts-with-simulink-three-way-merge.html
https://forza.cocolog-nifty.com/blog/2012/06/3-a4c2.html
https://yu8mada.com/2018/08/22/i-tried-exaiming-how-the-common-ancestor-would-look-if-there-were-the-2-common-ancestors-at-git-s-3-way-merge/